//有环就行
//欧拉路

#include<bits/stdc++.h>
using namespace std;
const int N=130;

vector<int> edges[N];
bool visit[N];
int du[N];

int n;
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
    {
        string e;
        cin>>e;
        int s=e[0],t=e[1];
        edges[s].emplace_back(t);
        edges[t].emplace_back(s);
        du[s]++;
        du[t]++;
    }
    char c1,c3;
    for(int i=0;i<N;i++){
        if(du[i]!=0&&du[i]!=1&&du[i]!=2&&du[i]!=3){
            cout<<"No Solution"<<endl;
            return 0;
        }
        if(du[i]==1) c1=i;
        if(du[i]==3) c3=i;
    }
    int st=min(c1,c3);
    string ans;
    if(st==c1){
        ans+=c1;
        ans+=c3;
        int cur=c3;
        bool visit[N];
        memset(visit,0,sizeof(visit));
        while(ans.length()<n){

        }
        ans+=c3;
    }
    cout<<ans<<endl;
    return 0;
}